package com.skyd.core.android.game.crosswisewar;

import android.graphics.Canvas;

import com.skyd.core.android.game.GameMultifunctionSpirit;
import com.skyd.core.game.crosswisewar.INation;
import com.skyd.core.game.crosswisewar.IObj;
import com.skyd.core.game.crosswisewar.IScene;
import com.skyd.core.vector.Vector2DF;

public abstract class Obj extends GameMultifunctionSpirit implements IObj {

	/**
	 * 添加到场景
	 * @param scene
	 */
	public void addToScene(Scene scene){
		scene.getSpiritList().add(this);
		setParentScene(scene);
	}
	
	/**
	 * 从场景移除
	 */
	public void removeFromScene(){
		((Scene)getParentScene()).getSpiritList().remove(this);
		setParentSceneToDefault();
	}

	/**
	 * 初始值为null。 功能注释：所属阵营
	 */
	private INation _Nation = null;

	/**
	 * 获取Nation。 功能注释：所属阵营
	 * 
	 * @return 当前的INation类型的值
	 */
	public INation getNation() {
		return _Nation;
	}

	/**
	 * 设置Nation。 功能注释：所属阵营
	 * 
	 * @param value
	 *            要设置的INation类型值
	 */
	public void setNation(INation value) {
		_Nation = value;
	}

	/**
	 * 设置Nation为其默认值(null)。 功能注释：所属阵营
	 */
	public void setNationToDefault() {
		setNation(null);
	}

	/**
	 * 初始值为null。 功能注释：所属场景
	 */
	private IScene _ParentScene = null;

	/**
	 * 获取ParentScene。 功能注释：所属场景
	 * 
	 * @return 当前的IScene类型的值
	 */
	public IScene getParentScene() {
		return _ParentScene;
	}

	/**
	 * 设置ParentScene。 功能注释：所属场景
	 * 
	 * @param value
	 *            要设置的IScene类型值
	 */
	public void setParentScene(IScene value) {
		_ParentScene = value;
	}

	/**
	 * 设置ParentScene为其默认值(null)。 功能注释：所属场景
	 */
	public void setParentSceneToDefault() {
		setParentScene(null);
	}

	/**
	 * 获取PositionInScene。 功能注释：在场景中的位置
	 * 
	 * @return 当前的Vector2DF类型的值
	 */
	public Vector2DF getPositionInScene() {
		return getPosition();
	}

	/**
	 * 设置PositionInScene。 功能注释：在场景中的位置
	 * 
	 * @param value
	 *            要设置的Vector2DF类型值
	 */
	public void setPositionInScene(Vector2DF value) {
		setPosition(value);
	}

	@Override
	protected void operateCanvas(Canvas c) {
		super.operateCanvas(c);
		if(!getNation().getIsRighteous())c.scale(-1, 1);
	}

	

	
}
